/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gob.inamhi.md;

import gob.inamhi.util.Conexion;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;

/**
 *
 * @author Diego
 */
public class RawDataMD {

//    private ArrayList<Integer> estaciones;
    private ArrayList<String[]> parametros;
    private Double[] datos;

//    public void setEstaciones(int copa) {
//        Conexion con = new Conexion(usuario, password, driver, host, puerto, base);
//        try {
//            // TODO code application logic here
//            estaciones = new ArrayList<Integer>();
//            con.conectar();
//            ResultSet rs = con.getSentencia().executeQuery("select esta__id from vta__estaciones_general where copa__id=" + copa + " ");
//
//            while (rs.next()) {
//                estaciones.add(rs.getInt(1));
//            }
//        } catch (SQLException ex) {
//            Logger.getLogger(ProcesadorMain.class.getName()).log(Level.SEVERE, null, ex);
//        } finally {
//            con.desconectar();
//        }
//    }
//    public ArrayList<Integer> getEstaciones(Integer copa) {
//        setEstaciones(copa);
//        return estaciones;
//    }
    public ArrayList<String[]> getParametrosAProcesar() {
        EntityManager em = Persistence.createEntityManagerFactory("bandahmPU").createEntityManager();
        String url = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.url").toString();
        String usuario = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.user").toString();
        String clave = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.password").toString();
        String driver = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.driver").toString();
        em.close();
        Conexion con = new Conexion(url, usuario, clave, driver);
        try {
            // TODO code application logic here
            parametros = new ArrayList<String[]>();
            con.conectar();

            ResultSet rs = con.getSentencia().executeQuery("select prpm__id,copa__id,coparesu,prpmoper,prpmdeci,prpminte,prpmhorc,prpmpaso,prpmfnte,prpmdest,prpmesta,esta__id,prpmporc,cfges__id from administrative.prpm ");
            while (rs.next()) {
                String[] prpm = new String[]{rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7), rs.getString(8), rs.getString(9), rs.getString(10), rs.getString(11), rs.getString(12), rs.getString(13), rs.getString(14)};
                parametros.add(prpm);
            }
        } catch (SQLException ex) {
//            Logger.getLogger(ProcesadorMain.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            con.desconectar();
        }
        return parametros;
    }

    public Double[] getDatos(String tablaFuente, int copa, int estacion, int cfges, String fechaInicio, String fechaFin) {
        EntityManager em = Persistence.createEntityManagerFactory("bandahmPU").createEntityManager();
        String url = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.url").toString();
        String usuario = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.user").toString();
        String clave = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.password").toString();
        String driver = em.getEntityManagerFactory().getProperties().get("javax.persistence.jdbc.driver").toString();
        em.close();

        Conexion con = new Conexion(url, usuario, clave, driver);
//        int i = 0;
//        int filas = 0;
        try {
            // TODO code application logic here
            con.conectar();
            ArrayList<Double> aux = new ArrayList<Double>();

            String query = "select datavalo from " + tablaFuente + " where esta__id=" + estacion + " and cfges__id=" + cfges + " and fechahora >= '" + fechaInicio + "' and fechahora < '" + fechaFin + "' and copa__id=" + copa + "and cali1__id=8";
            System.out.println("buscando datos: " + query);
            ResultSet rs = con.getSentencia().executeQuery(query);

            while (rs.next()) {
//                filas++;
                aux.add(rs.getDouble(1));
            }

            datos = new Double[aux.size()];
            aux.toArray(datos);
//            rs.beforeFirst();
//            while (rs.next()) {
//                datos[i++] = rs.getDouble(1);
//            }

        } catch (SQLException ex) {
//            Logger.getLogger(ProcesadorMain.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            con.desconectar();
        }

        return datos;
    }
}
